package jp.seraph.jsmf.motion;

import java.io.IOException;

/**
 * EditableMotionを管理する、内容を編集可能なMotionManagerです。
 *
 */
public interface EditableMotionManager extends MotionManager {
    /**
     * 引数の名前を持つMotionを取得します。
     * 基本的な規約は、MotionManagerのgetMotionメソッドに準拠します。
     *
     * @param aMotionName
     * @return 対象のMotionが存在すればそのモーション　存在しない場合null
     * @see jp.seraph.jsmf.motion.MotionManager#getMotion(String);
     */
    public EditableMotion getEditableMotion(String aMotionName);
    public boolean removeMotion(String aMotionName);
    public void removeAll();
    public void setMotion(String aMotionName, EditableMotion aMotion);

    /**
     * 現在のMotionManagerの内容をなんらかの手段を用いて永続化します。
     *
     * @throws IOException
     */
    public void save() throws IOException;
}
